package dto

type CommonQuery struct {
	Page    int    `json:"page" binding:"required,min=1"`
	Limit   int    `json:"limit" binding:"required,min=1",default=10"`
	Keyword string `json:"keyword" binding:"omitempty"`
}

type UserParams struct {
	UserId string `json:"userId"`
}

type JackpotUserRegisterDTO struct {
	Username string `json:"username" `
	Password string `json:"password"`
	UserId   string `json:"userId"`
	Avatar   string `json:"avatar"`
	Nickname string `json:"nickname"`
	Email    string `json:"email" `
	Phone    string `json:"phone" `
}

type GameResultDTO struct {
	Dice1    int  `json:"dice1"`
	Dice2    int  `json:"dice2"`
	Dice3    int  `json:"dice3"`
	IsRandom bool `json:"isRandom"`
}

type RechargeParamsDTO struct {
	UserId string  `json:"userId" binding:"required"`
	Amount float64 `json:"amount" binding:"required,min=1"`
}

type AddOddRuleParamsDTO struct {
	UserId string `json:"userId" binding:"required"`
	Rule   string `json:"rule" binding:"required"`
}

type OpenGameResultParamsDTO struct {
	GameResultId string `json:"gameResultId" binding:"required"`
}

type DisposeOddRuleParamsDTO struct {
	IsActive  int     `json:"isActive"`
	BetType   string  `json:"betType"`
	OddsValue float64 `json:"oddsValue"`
	OddsName  string  `json:"oddsName"`
	RuleId    string  `json:"ruleId"`
}

type OddsQueryDTO struct {
	CommonQuery
	BetType  string `json:"betType"`
	IsActive int8   `json:"isActive"`
}

type BetAddParamsDTO struct {
	BetAmount float64 `json:"betAmount" binding:"required,min=1"`
	BetCount  float64 `json:"betCount" binding:"required,min=1"`
	BetType   string  `json:"betType" binding:"required"`
	OddsName  string  `json:"oddsName" binding:"required"`
	OddsValue float64 `json:"oddsValue" binding:"required"`
	Value     string  `json:"value" binding:"required"`
}

type BetFormDTO struct {
	BetParams    []BetAddParamsDTO `json:"betParams" binding:"required"`
	GameResultId string            `json:"gameResultId" binding:"required"`
	GameUserId   string            `json:"gameUserId" binding:"required"`
	TotalAmount  float64           `json:"totalAmount" binding:"required"`
}
